// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'
import ListClass from '@api/broadcast/model/QueryTaskListReq'
import OneClass from '@api/broadcast/model/TaskDto'
import state from '@admin/views/Secure/detail/DetailBroadcast/store/state'
import API from './API'

// ============================== 导出状态集 ============================== //

export default {
  // —————————————————————————————— 常量状态 —————————————————————————————— //

  /**
   * 接口
   */
  API,

  /**
   * 映射
   */
  MAP: {
    WORD: '任务', // 词语
    tipEdit: '调整音量', // 修改提示

    /**
     * 控制
     */
    CONTROL: {
      START: { controlCode: 1, playMode: '' },
      PAUSE: { controlCode: 2, playMode: '' },
      PLAY: { controlCode: 3, playMode: '' },
      PREV: { controlCode: 4, playMode: '' },
      NEXT: { controlCode: 5, playMode: '' },
    },

    /**
     * 提示
     */
    TIP: {
      START: '开始播放',
      PAUSE: '暂停播放',
      PLAY: '继续播放',
      PREV: '上一曲',
      NEXT: '下一曲',
    },
  },

  /**
   * 字典
   */
  DICT: {
    /**
     * 循环
     */
    LOOP: [
      ['1', '常规播放'],
      ['2', '列表循环'],
      ['3', '随机模式'],
    ],

    /**
     * 终端状态
     */
    TERMINAL_STATUS: state.DICT.STATUS,
  },

  /**
   * 初始配置
   */
  INIT_CONFIG: {
    /**
     * 提交后刷新的延迟毫秒数
     */
    SUBMIT_REFRESH_DELAY: 2000,
  },

  /**
   * 初始参数
   *
   * 1. 初始存在，才能响应
   * 2. CORE.mixStore(store) 时使用
   * 3. setParam() 重置时使用
   * 3. WebSearch 高级查询点重置时使用
   */
  INIT_PARAM: CORE.initObj(ListClass, {
    //
  }),

  /**
   * 初始单项
   *
   * 1. 初始存在，才能响应
   * 2. CORE.mixStore(store) 时使用
   * 3. setOne() 重置时使用
   * 4. openAdd() 新增时使用
   */
  INIT_ONE: CORE.initObj(OneClass, {
    controlId: '', // 控制的任务 ID
    controlCode: undefined, // 控制码 1开始播放 2暂停播放 3继续播放 4上一曲 5下一曲
    playMode: '', // 播放模式
    vol: 0, // 调整的音量
  }),
}
